package com.smedi.ismedi.personnel.core.port.adapter.service;

import com.smedi.ismedi.constructionproject.api.dto.request.ProjectAssignmentRequest;
import com.smedi.ismedi.constructionproject.api.dto.response.ProjectAssignmentResponse;
import com.smedi.ismedi.constructionproject.api.dto.response.ProjectBasicResponse;
import com.smedi.ismedi.constructionproject.api.dto.response.resp.ProjectAssignmentResp;
import com.smedi.ismedi.organization.api.dto.response.HrOrganizationResponse;
import com.smedi.ismedi.personnel.core.port.adapter.persistence.dto.ProjectAssignmentQuery;
import com.smedi.ismedi.web.starter.common.ResponseData;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;
import java.util.Map;

/**
 * @Author: xulinjun
 * @Date: 2021-6-10 20:45
 */
public interface ConstructionProjectRemoteApiService {
    ProjectAssignmentResponse saveProjectAssignment(ProjectAssignmentRequest projectAssignmentRequest);

    List<ProjectAssignmentResponse> getProjectAssignmentsByPersonId(Long personId);

    Boolean checkProjectAvailable(Long projectId);

    void deleteProjectAssignmentsByPersonId(Long personId);

    List<ProjectBasicResponse> getQueryProjectBasicListByPersonId(Long personId);

    List<ProjectBasicResponse> getQueryProjectBasicListByHrOrganizationIds(List<Long> hrOrganizationIds);

    List<ProjectBasicResponse> getQueryAllProjectBasicList();

    ProjectBasicResponse getProjectBasicByProjectId(Long projectId);

    List<Long> getQueryPersonIdsByProjectId(@RequestParam("projectId") Long projectId);

    List<ProjectAssignmentResp> getProjectAssignmentList(ProjectAssignmentQuery projectAssignmentQuery);

    List<ProjectAssignmentResp> getProjectAssignmentListWithoutToken(ProjectAssignmentQuery projectAssignmentQuery);
}
